It is increasingly common to distribute a data processing operation over a plurality of data processing units, with each of the units communicating over a data communications network such as the Internet. One reason for this is that a particular data processing unit may be able to do a job better than another, so a first unit makes a request for a second unit to do a particular job and then to return the result to the first unit.
It is also common to have a large number of intermediate data processing units, which are also known as “nodes,” between the originating unit that makes a request and the destination unit that is being requested to do the work. Each intermediate unit receives the request, performs some initial processing to determine what to do with it, and then forwards it on to the next unit.
One mechanism for carrying out such distributed data processing is called asynchronous message queuing, where applications communicate with each other by sending messages to a queue, which can then be accessed by the receiving application at a time that is convenient for the receiving application. IBM's WebSphere MQ (trademark) software product, which has been on the market for a number of years, is a popular example of this type of software.
Applications connect to a message queuing system and usually retrieve messages from one queue, perform their message processing with the retrieved message, and put the message on another queue in the message queuing system. From that queue, another application retrieves the message, performs its message processing, and puts it on another queue, and so on. To implement a message flow, however, each application needs to know the queue names for getting and putting the messages from or to queues. This becomes even more important in a grid where a service provider may provide services in a message queuing network.